<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script>
    //   检测是不是一个数组
    function isArray(arr){
        if(Object.prototype.toString.call(arr)==="[object Array]"){
            return true;
        }
        //  判断是不是伪数组
        var length = "length" in arr && arr.length;
        return typeof length =="number" && length>=0;
    }
    //   判断设置each方法
    function each (obj , callback){
        if(isArray(obj)){  //  代表是一个数组
            for (var i =0;i<obj.length;i++){
                if( callback.call( obj[i] ,obj[i], i)) break;
            }
        }else{  //  代表不是一个函数是一个对象
            for (var k in obj){
                if( callback.call( obj[k] ,obj[k], k)) break;
            }
        }

    }
    var arr = [1,5,2,3,4,5];
    var o ={
        name:"jim",
        age:123,
        gender:"nan"
    }
    each(arr,function(v,i){
        console.log(v);
        console.log(i);
    })
    each(o,function(v,i){
        console.log(v);
        console.log(i);
    })
</script>
</body>
</html>